package class01;

public class StringTestFind {

    public static void main(String[] args) {
        char[] arr = {'大', '数', '数', '数', '据', '5', '班'};
        String s = new String(arr);
        System.out.println(s);

        //1.4.2 系列2：查找
        //
        //（11）boolean contains(xx)：是否包含连续xx,
        System.out.println(s.contains("数据"));//true
        System.out.println(s.contains("数班"));//false ,因为在s字符串中，不是连续的
        //（12）int indexOf(xx)：从前往后找当前字符串中xx，即如果有返回第一次出现的下标，要是没有返回-1
        System.out.println(s.indexOf("数"));//1
        System.out.println(s.indexOf("数据")); //1  会把"数据"看为一个整体，所以返回1
        //（13）int indexOf(String str, int fromIndex)：返回指定子字符串在此字符串中第一次出现处的索引，从指定的索引开始
        System.out.println(s.indexOf("数", 1)); //1 从索引为1开始找数，存在返回对应的下标，不存在返回-1
        System.out.println(s.indexOf("数", 4));//-1 从索引为1开始找数，存在返回对应的下标，不存在返回-1
        //（14）int lastIndexOf(xx)：从后往前找当前字符串中xx，即如果有返回最后一次出现的下标，要是没有返回-1
        System.out.println(s.lastIndexOf("数")); //3
        //（15）int lastIndexOf(String str, int fromIndex)：返回指定子字符串在此字符串中最后一次出现处的索引，从指定的索引开始反向搜索。
        System.out.println(s.lastIndexOf("数", 4));
        String s1 = "哈哈，你好，哈哈";
        System.out.println(s1.lastIndexOf("哈"));
        System.out.println(s1.lastIndexOf("哈", 5));
        String s2 = "javajavajava";
        System.out.println(s2.lastIndexOf("j", 7));

//        1.4.3 系列3：字符串截取
//
//（16）String substring(int beginIndex) ：返回一个新的字符串，它是此字符串的从beginIndex开始截取到最后的一个子字符串。
//        左闭到末尾
        System.out.println(s1.substring(3));
        System.out.println(s2.substring(6));
//（17）String substring(int beginIndex, int endIndex) ：返回一个新字符串，它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
//        左开右闭
        System.out.println(s1.substring(3, 5));

    }
}
